It is well known that the majority of processors in operational desktop computers are idle for a high proportion of time such that, on average, the processing capacity of each individual computer is utilized at a very low percentage of its overall capacity. This is generally because computer technology advances have enabled most personal computers to process the work they are required to do very rapidly. Much of the time a computer is idle while waiting for the next request from a user.
It is expensive to provide separate computer systems to each user in an office or other environment such as a library. Furthermore, it is very time-consuming for a system administrator to administer to separate independent computer systems. Where the primary tasks of the computer users within the office are tasks that only require a low level of processing, such as reading from the display or typing on the keyboard, the amount of paid-for but unused processing power can be staggering.
It has been proposed to share a single computer amongst multiple users in order to reduce costs and more efficiently employ the processing power of the shared computer. Cost savings include capital cost as well as on-going support costs through a reduction in the amount of physical hardware (computer boxes, building and facility wiring and peripherals) and other factors such as the reduction of power consumption, air-conditioning and noise. Because personal computers are so numerous and widespread the greatest savings can be accomplished by using methods which, although they may be more generally applicable, provide for multiple users on the same personal computer.
The simultaneous sharing of a single computer by multiple local users is known in the area of mainframe computers, having multiple users individually interlacing by means of video displays and keyboards operatively connected to the same mainframe system. Other systems enabling multiple local users for a single personal computer have been developed both by commercial UNIX companies and by independent software developers. Such systems include Linux systems operating on personal computers that employ a separate instance of the X windows system for each terminal, or leverage the terminal services (thin-client) support within the operating system. One particular example of such a multi-head Linux system is described at www.disjunkt.com/dualhead.
The systems proposed in the past provide improvements, but suffer from a number of disadvantages and have potential for various improvements. Known systems operating on personal computers typically run one instance of the X-Windows graphical user interface layer for each terminal. An example of this configuration is the HP441, a commercial product based on open source software available at www.ltn.lv/˜aivils/.
It has been found that in the event that a terminal operated by a computer running one instance of X-Windows for each terminal in accordance with the prior art freezes, it may not be possible to reset the terminal without rebooting the computer. For such multi-user systems, shutting down a single terminal interrupts of all other users on the system.
Prior art systems require that all terminals on the same computer share the same IP address. This means that traffic originating from a computer box cannot be traced to an individual terminal and hence to an individual user, and as a result, such a system is difficult to effectively deploy in some situations.
Prior art systems have been known to suffer from problems with device utilization. For example, floppy drives, CD drives or card readers may be physically connected to the computer but not able to be easily and securely accessed by users of the terminal. Alternatively, if such devices are dedicated for use at a single terminal, they may be idle a vast majority of the time and so suffer from inefficiency in utilization. There is a need to provide superior ways of associating the various devices that can be used to make up a terminal; in particular, to allow the terminals: to be set up in any order, to be dealt with independently of the other terminals, and to enable each terminal to be available for use as soon as it has been set up. Two methods in common use have inadequacies.
Prior art systems have been known to suffer from problems with device identification and allocation to terminals. For example identifying a specific USB floppy drive so that it can be grouped with a station.
The sequential method that provides a prompt on each screen in a predetermined sequence moving through the screens one at a time, as used by ThinSoft (Holdings) Inc., called BeTwin, (Hong Kong, www.thincomputinginc.com), presents problems. In certain physical layouts this forces the user to physically move between monitors to find the one currently prompting for assignment. Further, if a Video Output does not have a visual display device/apparatus such as a Monitor connected to it, the User receives no visual feedback to indicate what is happening once the sequence reaches that video output. Still further, if a device has been incorrectly associated or is not physically connected, it is difficult to detect, identify, and remedy the problem.
Another known approach is simply to label the back of the computer indicating how (for example) USB ports, for keyboards and mice, need to be inserted to link to the appropriate video outputs. The Hewlett Packard 441 Desktop Solution is set up on this basis. However, this approach makes setup inflexible and difficult because as a practical matter, the many cables converging on the back of the computer obscure the labeling. Furthermore, this approach does not assist setup of cordless devices.
There is a need for appropriate status indicators for use during setup and operation of systems in which a single computer operates multiple local terminals. With ordinary personal computers the one-to-one relationship between terminals and computer boxes implies that a device that is not working is either disconnected or malfunctioning. However with multiple local terminals the complexity of setup is increased because when a device does not respond to input, there could be one of three causes:
(1) the device is not connected properly or is malfunctioning;
(2) the device has already been linked but is linked to a different terminal (e.g., the keyboard links to the wrong monitor);
(3) the device is plugged in and functioning but has not been linked.
It would be advantageous for users to have a means of clearly differentiating these three possible states in all types of devices, because setup and monitoring of such systems would be greatly simplified.
Furthermore, breaking the connection between devices in a multiple terminal system can be awkward for administrators.
There is also need for an effective shut-down mechanism in such a multi-user system, that takes into account both the needs of the users currently using the system to complete their work, and the needs of the users wishing to reboot the system quickly.
It is desirable that such systems should conveniently support dual view, where the display of one terminal is spread over several monitor screens, and that the system can easily switch between modes, for example a single terminal supporting one user with dual view to two independent terminals, without unplugging and replugging. This allows the maximum use of resources, for example the maximum screen size in daytime use by a professional working at home with convenient changing to the nighttime sharing of the facility with a partner.
Since systems for multiple users on a single personal computer have a vast number of potential uses there is a need to provide systems that allow for broader uses that do not simply involve a keyboard and pointing device. For example: terminals that have no keyboard.
It is an object of an aspect of the invention to provide an improved system and method for operating independent groups of corresponding input and output devices using a single personal computer.